DTS/FAQ/3ds Max FAQ

 

Contents

Modeling

Can I group objects?
A group can be deceiving as it may appear as though the object is properly named, but in reality, the objects within it are not (they retain the names they had before they were grouped). Think of a group as a visual simplification that you can open, modify, and then close and return to your scene. Due to the way that groups actually work, they can cause problems when you export. Therefore it is best that you do not group any objects when you try to export the scene.

Can I use any of Max's sub-division modifiers?
It is recommended that you don't for two reasons. The first being that it is counter productive since you are aiming for low poly models. The second being that the exporter doesn't really like the sub-divisional modifiers (such as Tesselate, MeshSmooth, and HSDS) when it tries to export your model. If you must use a sub-divisional modifier to create your object, it is recommended that you collapse the object to a mesh or polygon before applying your skinning or texturing.

(I've found that the exporter chokes on polygon objects that have skin modifiers, like characters. It gives me an "assertion failed" when I try to export. It'll only export properly for me when I first collapse the model to a mesh object. This is in 3ds max version 5. -Spencer Boomhower)

I have heard that it sometimes helps to collapse my modifier stack when exporting. Is this true?
Yes, this can sometimes help your model when you are trying to export as it collapses the entire object (at its current state) into a single, solid mesh. This can be beneficial when you have an object that is generating errors when exporting, and is sometimes a valid solution to get around that problem. Just remember to keep backups of your un-collapsed meshes though, in case you need to go back a few steps later.

Some artists recommend working in an Editable Mesh object throughout because everything useful in the model can be obtained from an editable mesh. Just remember to make incremental saves so that you can go back to previous versions if you need to change something

I have seen a lot of on-line references that show examples of using spline shapes to generate your object. Can I do this with Torque?
You certainly can, but you will likely want to either collapse the modifier stack or add an Editable Mesh modifier onto the object after you have built your shape from an Extrude, Loft, or Surface modifier.

I have imported a file that I created in another program into Max, but when I look at my object, faces are missing or not connected. Why?
Some file formats (such as 3DS) do not contain information on vertex normals. So, if you brought a model in from another program, Max must generate the normals and sometimes will get them wrong. To solve this problem, add a Normal modifier to each object and choose flip normals. If only some of the normals are incorrect you will need to manually go in and fix them yourself using the Edit Mesh or Edit Poly modifier.

What is this “box trick” that I always see reference to when people talk about resetting the transforms?
The box trick is a way of properly resetting the transform information for an object that you have scaled. And it involves the following:

Make a box, put it at the origin of the bounding box (use the align tool) and then collapse the box so that it becomes an editable mesh. Go into the modifier panel and click on the attach button, then click on your character mesh to attach it to the box that you just created. The character should now be a part of your newly created box. Choose >Select by Element> select the box shape and delete it. Your character mesh has a brand new transform, now rename your character mesh so that it conforms to the export parameters.

It is also sometimes necessary to perform the box trick on bounding boxes as well as meshes.

Do my skeletons (Bones or Biped) need to look like people?
No, you can make your skeleton look and operate any way that you feel. To quote Joe Maruschak if you can build it, it can be used.

 

 

 

 

Textures and Texturing

Can I use transparency on a PNG file instead of the alpha channel?
Max does not know how to read the transparency value of a PNG file. It does, however, know how to read the alpha channel from a PNG.

What types of materials can I use?
Standard and Multi/Sub-object are the only material types that should be used on the models you are exporting to Torque. Any of the other material types such as Raytrace Blend, Composite, Matte/Shade, Hardware Shader, Shellac, Top/Bottom, and any new material type that is added from a Max plugin can in theory be used, but the exporter will likely ignore the information contained in it.

How can I make my material reflective
If the environment mapping is turned on in the engine (this does not work in the show tool), you need to check the reflection channel in the material editor (you do not need to put a texture in the slot). If you adjust the spinner that is next to the reflection channel, you can control the amount of reflectivity the object has.

For additional information please see Environment Mapping in the DTS Exporter Tutorial by Joe Marushchak.

How can I make my material translucent?
To make an object translucent, the texture on the object must have an alpha channel. The amount of translucency is controlled by the alpha channel. Put the texture in the diffuse mapping slot and check the opacity checkbox in the material editor. You do not need to put a texture in the opacity slot, it will get the opacity information from the alpha channel of the diffuse texture.

How do I setup bump maps on my object?
Normal maps and grayscale bump maps can be assigned to your textures in the materials file.

What is an IFL and why is it used?
An IFL is an Image File List or an Image File Library, which is essentially a text document with a list of filenames. When you play an IFL the program reads this list and during each frame it displays the filename as the texture (proceeding in order usually from the top of the list to the bottom). Using an IFL file is a viable alternative to using animated GIFs or AVI files to have a looping texture.

Note that the engine is currently set to propend a "skins" directory to IFL resource names.

Can I use multiple UVW map channels to texture my model?
No, only one UVW channel is supported by the exporter.

Can I use material IDs to help me texture my model?
Yes.

I have a transparency material applied. Why when I view the object do things seem inside out?
In order for translucent shapes to draw correctly, they must be forced to sort in the correct order. Prepend the name of the object with SORT:: to tell the exporter that this object may have trouble sorting. The exporter will take extra steps to ensure it sorts correctly in the engine. You will have to ignore this problem if it is happening within Max.

Do all of my player character textures need to be named player.png?
No, you can call them whatever you like (unless you like to overwrite existing files).

How do I make my entire object transparent, or animate its transparency?
Add a visibility channel to your object in the track view and set the value of the visibility from within there. For information on how to assign a visibility track to your object and how to use keyframes to control the visibility, consult your 3DS Max documentation.

Can I use mapchannels greater than 1 to help setup my texture mapping?
No! Mapchannels that are greater than 1 will not be exported to the DTS format. They will be ignored and your texture mapping information on those mapchannels will be ignored upon export.

Note: This is fairly common for RT3D engines and is not a problem specific with the Torque game engine.

How do I turn on the Environmental Reflections in Torque?
Provided that you have setup your material correctly you will need to add the following lines of code: In your player.cs file you need to set emap to true; and in \client\prefs.cs you need to change the value of $pref::environmentMaps from 0 to 1. Please note that environmental reflections will only work with player or vehicle objects.

Are there any issues that I should be aware of if I use a multi/Sub-object material on my model?
In fact there is. Using Multi/Sub-Object materials on your models can affect the performance of the engine. When you have multiple textures on your model, the engine must draw (and keep in memory) an instance of the model for each texture that is applied to it. So if you have 2 textures applied to a node and that node is 500 polygons, the engine will actually have to draw 1000 polygons and keep that data in memory.

As such, although you can do it, you should be aware of the consequences involved in texturing this way and know that it is highly recommended to use only 1 texture per model.

 

 

 

 

Skinning

When I move my bones in the viewport the object does not move (deform)?
Go into the skin modifier of the object in question. Select a bone and look at the envelope that the bone is casting. A bone will only affect vertices that its envelopes are overlapping (these verticies will be shown as red in the viewport display). Adjust the envelope by moving it to ensure that it has influence over the correct vertices in your object. You need to do this for each bone.

Using the skin paint tool, paint the influence that the bone has on the mesh. Once again any vertex that the bone has influence over will be displayed as red in the viewport.

Can I use the “Physique” modifier from Character Studio to skin my character?
You can, but when the character exports, it will export as a morph animation (which is not recommended because it is a lot larger in size).

Can I use a Biped object from Character Studio on my character?
Yes you can, but you will need to use the Skin modifier (instead of the Physique modifier) to apply it to your model.

What is ComSkin and where can I find it?
ComSkin is an updated Skin modifier for Max version 3 that was presented at a GDC conference a few years ago. It has several advanced features that are not found in the R3 version of Skin.

It is included in the R4 and subsequent versions of Skin.

Should I use Bones or Biped?
It doesn't matter if you use bones or biped. All that matters is that the bones, biped parts, or whatever node is in the shape has the same NAME as the one in the animations.

My object is too big! How can I scale it down without wrecking the Biped, Bones or skin setup?
Biped -- If the character already has Skin (or Physique) on it you should be able to just pick the root node of Biped and scale it. All the other bones (of the Biped) are children of the root Biped node, so they should follow along and scale appropriately. It is recommended that you turn off the Skin (or Physique) and scale the model by itself and then reset the scale. After that is done, reset the Skin (or Physique) and turn it back on. If there are errors with how the bones move or how the Skin modifier is setup, you may need to reapply your Skin modifier.

Bones -- Scaling your bones and then linking them (or when they are linked) up to objects in your scene is something that should be avoided. To change a bones length go into the bones properties and turn off Freeze Length. Turn off the Skin modifier. Then move the child bone to change its parent's length (and/or change the size and shape of the bone in R4). After you have made your changes to the bones, select all of the bones, go back into their properties, press reset length, then refreeze the length of the bones. Finally turn the Skin modifier back on and test. If there are any problems with how the bones are affecting your object you may need to reapply your Skin modifier.

After UVW unwrapping my model, why are the texture coordinates messed up in the game?
This is likely due to a very large texture being used on your object. Your texture should be no larger than 512x512 pixels in size for it to be used properly in the Torque Engine.

Can I use more than one texture map on a single mesh?
Yes you can. Use a Multi/Sub-Object material and assign the correct face IDs to your mesh for a specific material to appear on specific faces.

 

 

 

 

Animating

Can I use a dummy object to help control the motion of my bones?
Sure. Just make certain the dummy object(s) you are using does not have a number at the end of its name. This may cause problems with the exporter if the number happened to match a detail marker in your scene.

Do I Need a Sequence Object?
Yes, a sequence object is required to export an animation.

For information on how to use a sequence object, please consult the DTS Exporter Tutorial.

Can I use Footsteps from Character Studio to help move my model around?
You can if you like. The exporter should have no problems with Biped Footsteps.

Is there any way I can take the pose that I have done on one side of my Biped or bones skeleton and copy it to the other side?
Yes. In figure mode on your biped object, you can select the objects that you wish to copy, press the copy transform button, and then click on your destination area of the biped and press paste opposite transform.

There are numerous ways to do this with bones, the easiest though would be to go into your track view and copy the rotation track from one bone and then paste it onto another bone. Another way would be for you to copy and paste the specific rotation or position information from one bone to another via the type-in window for the Move and Rotate tools.

You could also try to use one of the many maxscripts that are located on the web that can help automate this task for you. Scripts such as these are located at sites like maxplugins.de.

Can I translate the information contained in the Physique modifier into the Skin modifier?
Yes you can. On the Discreet development website (Spark's site) there is a small utility that Discreet has created that will turn Physique into Skin and vice versa.

 

 

 

 

Exporting

I have a maxscript/macroscript that "prepares" my model for exporting but it does not work?
It is likely that the maxscript is not building the correct structure (and linking) that is needed for a scene to successfully export to the DTS file format. Do not use the maxscript.

Why won't my object's bounding box export?
Make sure the box is named bounds or it will not export properly.

Error: "Skin found on unlinked node "Cylinder01" -- skin must be unlinked"
Skinned objects should not be linked as a child to any other object in your scene. They should only be linked to other objects that are necessary to make the skeletal deformation occur correctly. Unlink your skinned object from its parent. This can be done through the Schematic view or from the modifier list.

Error: “No Details to Export”
Either you do not have any objects in your scene that match the detail marker or you have setup your detail markers so that they are the parent of another object. Make sure to have at least "Detail-1" and "Detail02" as a standard detail base.

Error: “More than one bounds node found”
Ensure that the bounds object is not the parent of any other objects.

Try to ensure that your objects hierarchy in the schematic view is similar to the example found in the DTS Exporter Tutorial or in the sample Max files.

Do an unhide all and check to ensure that you have not created duplicate bounding boxes that you hid from view.

Can my IK Solvers export into the DTS file format or do I need to set them as “always ignore” in my .cfg file?
You can do either, but you don't need them to make your model work. On export, the animation is baked down into rotation values on the bones. It would be better to cull them out so you don't have a bunch of extra nodes floating around that need to be transformed in the engine.

Error: “"Too many subtrees: t2Autodetail only works with single subtree objects"
You are linking objects to more than one subtree. Don't.

I resaved player.max in Max4. Will the original dsq files work with the new dts?
The player.max file has had the animation sequences stripped out of it, therefore you cannot re-export and get the default player .dsq files.

The DSQ files are loaded into a new shape at runtime constructed by a .cs file that is associated with the shape. If you are exporting the shape and it doesn't have a .cs file, the animations won't load. If you don't have the proper .cfg file for the DTS shape when you exported it, it is probably missing nodes that are in the DSQ files, and the animations won't load into the shape. Look at the player.cs and the dtsScene.cfg that is in the same directory as your player file.

Or, there is no .cfg file, and collapse transforms was checked when you exported, so some of the nodes that the sequences need were culled.

Error: "Multiple Config Files Found in directory"
The exporter looks for a file called <somename>.cfg in the same directory as the max file being exported. This .cfg file tells the exporter certain things about a model and allows for control of exactly what is being exported. The exporter expects one .cfg per model directory. If it finds more than one, it gives a warning.

The solution: make sure there is only one .cfg file in the directory you are exporting from. If you are exporting multiple versions of the same model or different animations, create subfolders for each animator and model, save your max file into this and use a different config file. This will allow you to only affect and work with the specific animation or version of your original model.

Error: "Sequence "<name>" is missing keyframes to mark start and end"
Open the track view window in Max. Expand Objects and scroll down the list until you find the sequence. Expand this track, then expand the sequence track below it. You will now see a track called sequence begin/end. Add a keyframe where the sequence will begin, and then add another one where you wish to have your sequence end.

What type of objects should my mount, collision, eye, cam, ground, and mass nodes be?
These nodes should all be dummy objects. If the exporter is ignoring these nodes when it exports, you need to explicitly list them in your .CFG file. See the Max2dts documentation for more information on .cfg files.

Error: "Assertion error on skin object"
You likely did not set up your envelopes and bone weighting correctly. If there is even a single unassociated vertex on your mesh that has the skin modifier on it, it will cause an assertion error when you try to export.

Or, collapse your model to an Editable Mesh before applying your skin modifier. Check your Dump file to see where the assertion error show up, it will reveal the last area the exporter was working on, typically the result will show which bone is not correctly skinned in.

(I've seen this same error when trying to export a poly object with a skin modifier on it. Only a mesh object works for me. This is exporting from Max 5. I've also noted this in the model section. - Spencer Boomhower)

Error: "Cannot collapse node "name" because it is a bone!"
You are likely using your CFG file to never export a bone that is currently in your scene, this can cause an error because the exporter thinks that the mesh (with Skin modifier) in your scene needs this bone to perform the deformation. Delete your mesh and then try exporting again.

My model exports correctly, so why are there problems with auto detail levels?
The good folks at Bravetree productions have created a small utility called unmessdts.exe (found in the DTS Exporter documentation) that will fix the autodetails that are created by the exporter when the Multires modifier is used. Information on how to use the unmessdts.exe file can be found in the DTS Exporter documentation.

Does the shape exporter work with Max 5?
Yes, but not officially. Discrete changed the MultiRes plugin in Max5. In order to get the exporter to work you need to backup your copy of the MultiRes DLM in Max5 and copy in the MultiRes DLM from Max4.

How do I scale my model and its bones?
Unfortunately there is no easy answer to this question, the problem lies in the fact that you are scaling the bones that a modifier on your mesh is referencing to perform the deformations based on the bone transforms.

To re-adjust your scale, you will need to do the following: 1. Save your weighting for your deformation modifier to a file. 2. Remove your deformation modifier from your model. 3. Scale the model and re-adjust the size of your biped to the correct size. Note if you are using bones, they typically do not scale well. If you have any problems you will need to rebuild them. 4. Reset the transform information on your geometry that you scaled (not biped or bones). 5. Add your deformation modifier back onto your geometry. Add all of the biped or bones data that you need with it into the modifier. 6. Load your weight table that you saved in the first step back into your modifier.

How can I export animations that I have done with a modifier in Max?
Any animation done with any modifier found in Max can be exported to a DTS file. To export this animation information you must flag the morph animation option in the DTS Sequence object that you add to your scene, otherwise this information will not be exported.

Why does my rotation animation look fine in max but stutter in the engine?
If you fail to match your start and end positions, TGE will reset the objects position to what it sees at the start of the sequence. This causes the jump or stutter effect that you see because the position that it is moving to between two frames is completely different.

In order to solve this problem set the end key frame of your object(s) animation to go 360 degrees (so that it loops correctly). If you liked the timing you had set, increase the end time of the animation, move your keys, and adjust them as previously mentioned. Don’t forget to move your sequence start/end keys too.

Why is my weapon placed incorrectly on the mount node?
You probably do not have an accompanying mountpoint node in your weapon model DTS file. Without this node your weapon will be placed based on the location of the bounds shape.

Either that, or your weapon script might be telling the weapon to be offset.

Why after scaling my scene do all of my nodes seem to be placed in the wrong location?
When the exporter looks at your scene and reads the helper, it finds that the helpers base position is in one location, but the scale is visually telling you that it is in another. Since scales are applied onto your 3D data (they do not actually change it) the exporter reads the original location and dumps that into the DTS shape.

If this has happened to you, you will have to replace all of these helpers or find some way to undo your scale. A better solution, if it's available, would be to import the nodes from a previous version of the file (before you scaled) and have them replace your existing ones.

As a general rule you should never scale your dummy nodes.

Why is the polygon count of my object higher in Torque than in Max?
There are a few items that typically increase polygon count past what was displayed when you built your model in Max.

The first is that your skeletal systems polygons that make up its shapes are included in the count that the Torque Game Engine gives you.

The second is that when the exporter encounters a material with double-sided flagged, it actually exports two sets of polygons (the normal polygons that you see and then another set of flipped polygons) for the model/node that the material is applied upon. This is not something that should concern you or affect the performance of your TGE application. That is unless you made a large object use a double sided material. In that case, thousands of unnecessary polygons are being rendered.

The third is that TGE will include all of your collision geometry in this total as well.

My character exports successfully so why does it look distorted in the in the ShowTool?
You are probably forcing the Bip01 node to be exported in either your DTS or your DSQ which is causing odd transform data to be read by Torque and applied to your DTS shape. Change your CFG file that is used to export this model or sequence so that node Bip01 is "always ignored".

 

 

 

 

In Game Problems

Why aren't my up and down (jumping) motions showing up?
You likely have your bounding box set to inherit z motion from the object that it is linked to. You will need to deactivate this in the Hierarchy tab. This will keep bounds from following your character as he jumps up or down. You will also want to increase the bounds size to allow your character to jump without going outside of the bounding box.

Why are all of my objects facing the wrong direction when I bring them into my game?
The forward part of your object must point towards the positive Y axis in the top viewport in Max, rotate your model so that it points the right direction and export again.

The collision detection on my object is not working. Why?
All of your collision objects must be convex. If there is a concave part of the collision mesh, collision detection will not occur. You should also make certain that you have named your collision objects correctly and have added the necessary collision markers.

Why can't I see my object’s actions happening when I play a sequence in the game?
Make sure that your sequence is long enough to cover the length of time that an animation requires. Also make sure that you have named your sequence correctly so that it matches the correct sequence action within the Torque engine.

Error: "Illegal transform animation detected between collapsed node ‘<name>’ and bounds"
Your bounding box (bounds) is not enclosing your entire object at all times within the animation. Resize your bounding box so that it is always larger than your object (at any time during any of the animations) and export again.

When I load my character into the game it looks like I am viewing from his foot level. Why?
You either forgot to add an Eye or Cam dummy, the Eye and Cam dummy where omitted by the exporter (they were not on the always include list), or you forgot to move the dummies to the correct location on the model.

The Eye and Mount nodes are getting culled out on export. If they are not in the DTS shape, they default to mounting at the pivot point of the bounding box. Make sure the Eye and Mount nodes are included in your .cfg file for the DTS shape in the Always Export list.

Why does my character rotate into the ground when I try to make it flip?
If you are using the bounds object to do the rotation you will cause the character to rotate at the soles of his feet (instead of the hips or another location). This is because the pivot location of the bounds object in Max is the location of the ground in the Torque engine. When you try to rotate your character using the bounds object, you are actually rotating your character at a point near his feet causing the character to go into the ground.

To get around this, either rotate an object that is at, or near, the characters hip (this could be a mesh, a dummy, or a bone), or do the animation inside of Max instead of programming it into the engine.

How can I make it easier to have sounds added to the actions of my character?
Although your programmer would need to do the actual work implementation of this, you can help out in the processes of triggering a sound from an animation by putting a key and a key value in the trigger track of the sequence helper.

Why when I load my model into the engine is everything I attach incorrectly oriented?
This is likely a problem with how nodes such as mount0 are oriented. You need to remember that there are several coordinate systems within your 3D application and the default setting is typically view. This will display the model transform data to you based on the viewport that you are looking through.

Switch the coordinate system to local and then look at your nodes. All of your nodes should have their Z axis facing up, and their Y axis pointing towards the direction that you wish them to emit from. If they are not, you need to go into the Motion Command Panel, click on the affect pivot only button and then rotate the pivot point until it is oriented correctly.

Why won’t objects sort correctly?
The SORT function in the DTS exporter is made for little objects. You can force a SORT situation using your scene tree. The way models are assembled in the scene and how the hierarchy is setup is Identical to how the object is assembled in the engine. Any body who has ever used a scene tree knows about parent -> child relationships. DTS uses this as well.

For instance, if you are building a tree (foliage model) using a multi subobject material (1 trunk texture, 1 or more foliage texture), you would set you material with the solid texture first and the transparent textures second.

This will force things to be built correctly in the Z-buffer. The object will be assembled in game the same way as the heirachy dictates, automatically sorting your transparent textured shapes. Any Model can be assembled this way no matter how complicated but it does require breaking your model up into smaller pieces and setting up the hierarchy correctly. This works for any modelling application that uses a scenetree.

Why won't some animation sequences apply to my DTS shape?
For a sequence to be applied to a DTS shape, all of the skeletal nodes and all of the TGE nodes (such as eye, cam, mount, light, ski, etc.) must match between the two files. If they do not, the engine will not allow your sequence to be applied.

Why does my shape look invisible?
Check that you are viewing your model at the best LOD. Use the show LOD feature in Torque Show Tools in order to see if the smallest LOD shows your model. This is a problem that happens when your LOD is setup badly in Max. If you think you can see him and know the model is present because the shadow is cast, or Torque has no problems loading it and manipulating it in-game - You should check your LODs.

 

 

 

Miscellaneous Problems and Questions

  Is it possible to export from Gmax to Torque?
No, there is no Gmax Exporter for Torque, nor is it likely that there ever will be.

Sure the program is free, but writing an export plugin for GMax is NOT free. The EULA gives you the right to use gmax with authorized game packs, that's it. There is no such pack for Torque (eg. Tempest for Q3, etc).

There are problems with making a GMax game pack for Torque because it could potentially be used for so many different games, losing Discreet a lot of money on potential Max licenses.

There is a way to pass this by exporting from GMax to .MD3, and loading the .MD3 in milkshape, where you can export it to torque. Here is a link to a .MD3 exporter for GMax.

How do I load Max 3 MultiRes models into Max 4?
When Discreet added MultiRes as a Max R4 default plugin they changed the plugin ID#. Ignore this error, delete the missing modifier and add the Multires modifier to the object again.

Error: "An error has occurred and the application will close"
If you encounter this problem frequently your best solution is to make a post on the GG forums (or the Discreet Max Forums) and inform us of every detail about your system. Things such as your version of Max, hardware that is in your system, driver version for your hardware, BIOS version, software that is running at this time, memory specifications, operating system, will allow other people to try to help troubleshoot what your problem is.

How can I get the Multires LOD macroscript (adjustlod.mcr) to work properly?
One method that will allow you to get the script working is to do the following:

  1. Open up your maxscript listener window
  2. Open the adjustlod.mcr file
  3. Remove these two lines from the top of the script:
    macroScript adjustLODs category:"Torque_Tools" tooltip:"Adjust LODs"
    (
  4. Remove this line from the bottom of the script:
    )
  5. Select all of the remaining lines in the script (ctrl+a) and perform a drag and drop onto the tab panel located at the top of your screen. I recommend that you create your own tab panel for your own custom scripts so that you don't mess things up. This will create a small button on the tab panel. If you click on the button the floater window with the AdjustLOD script will generate and load.